package fiuba.algo3.tp2.modelo.posicion;


public class Posicion {
	private int posEnX;
	private int posEnY;
	
	public Posicion(int posEnX, int posEnY)
	{
		this.posEnX = posEnX;
		this.posEnY = posEnY;
	}
	
	public int obtenerPosEnX()
	{
		return this.posEnX;
	}
	
	public int obtenerPosEnY()
	{
		return this.posEnY;
	}
	
	public boolean posicionDentroDeRadio(int radio, Posicion posicion){
		boolean encontrado = false;
		for(int i = posEnX - radio; i <= posEnX + radio; i++){
			for(int j = posEnY - radio; j <= posEnY + radio; j++){
				if( (i == posicion.obtenerPosEnX()) && (j == posicion.obtenerPosEnY()))
					encontrado = true;
			}
		}
		return encontrado;
	}
	
	public boolean equals(Posicion posicion){
		
		if ((this.posEnX == posicion.obtenerPosEnX()) && (this.posEnY == posicion.obtenerPosEnY()))
			return true;
		else return false;
	}
	
	public int hashCode() {
        final int prime = 31;
        int result = 1;
        result = prime * result + posEnX;
        result = prime * result + posEnY;
        return result;
    }

	
	public int distancia(Posicion posicion){
		
		int suma,norma,diferenciaX,diferenciaY;
		
		diferenciaX = this.posEnX - posicion.obtenerPosEnX();
		diferenciaY = this.posEnY - posicion.obtenerPosEnY();

		suma = ((int) Math.pow(diferenciaX,2))+((int) Math.pow(diferenciaY,2));
		norma = (int) Math.sqrt(suma);
		return norma;
	}
}
